/* eslint-disable max-lines */
module.exports = {
	/* ===== Possible Errors ===== */
	"for-direction": {
		"rule": "error",
		"desc": "强制for循环条件因子自增与判断方向相反"
	},
	"getter-return": {
		"rule": ["error", {
			"allowImplicit": false
		}],
		"desc": "强制getter中必须有return"
	},
	"no-await-in-loop": {
		"rule": "error",
		"desc": "禁止在for循环中使用await"
	},
	"no-compare-neg-zero": {
		"rule": "error",
		"desc": "禁止对-0作相等判断"
	},
	"no-cond-assign": {
		"rule": ["warn", "always"],
		"desc": "禁止在条件或循环语句中进行赋值",
		"override": true
	},
	"no-console": {
		"rule": ["warn"],
		"desc": "禁用console",
		"override": true
	},
	"no-constant-condition": {
		"rule": ["warn", {
			"checkLoops": true
		}],
		"desc": "禁止在条件、循环或三元语句中使用常量表达式",
		"override": true
	},
	"no-control-regex": {
		"rule": "warn",
		"desc": "禁止在正则表达式中使用ASCII码为0-31的控制字符",
		"override": true
	},
	"no-debugger": {
		"rule": "error",
		"desc": "禁用debugger"
	},
	"no-dupe-args": {
		"rule": "error",
		"desc": "禁止在function参数中出现重复的定义"
	},
	"no-dupe-keys": {
		"rule": "error",
		"desc": "禁止在对象字面量中出现重复的键"
	},
	"no-duplicate-case": {
		"rule": "error",
		"desc": "禁止重复的case标签"
	},
	"no-empty": {
		"rule": ["error", {
			"allowEmptyCatch": true
		}],
		"desc": "禁止空块语句",
		"override": true
	},
	"no-empty-character-class": {
		"rule": "error",
		"desc": "禁止在正则表达式字面量中出现空字符集"
	},
	"no-ex-assign": {
		"rule": "error",
		"desc": "禁止对catch子句中的异常重新赋值"
	},
	"no-extra-boolean-cast": {
		"rule": "error",
		"desc": "禁止不必要的布尔类型转换"
	},
	"no-extra-parens": {
		"rule": ["error", "all", {
			"conditionalAssign": false,
			"returnAssign": false,
			"nestedBinaryExpressions": false,
			"ignoreJSX": "none",
			"enforceForArrowConditionals": false
		}],
		"desc": "禁止冗余的括号"
	},
	"no-extra-semi": {
		"rule": "error",
		"desc": "禁用不必要的分号"
	},
	"no-func-assign": {
		"rule": "error",
		"desc": "禁止对function声明重新赋值"
	},
	"no-inner-declarations": {
		"rule": ["error", "both"],
		"desc": "禁止在嵌套的语句块中出现var或function声明",
		"override": true
	},
	"no-invalid-regexp": {
		"rule": ["error", {
			"allowConstructorFlags": ["u", "y"]
		}],
		"desc": "禁止在RegExp构造函数中出现无效的正则表达式",
		"override": true
	},
	"no-irregular-whitespace": {
		"rule": ["error", {
			"skipStrings": true,
			"skipComments": false,
			"skipRegExps": true,
			"skipTemplates": true
		}],
		"desc": "禁止不规则的空白",
		"override": true
	},
	"no-obj-calls": {
		"rule": "error",
		"desc": "禁止将全局对象当作函数进行调用"
	},
	"no-prototype-builtins": {
		"rule": "warn",
		"desc": "禁止直接使用Object.prototypes的内置属性",
		"override": true
	},
	"no-regex-spaces": {
		"rule": "error",
		"desc": "禁止正则表达式字面量中出现多个空格"
	},
	"no-sparse-arrays": {
		"rule": "error",
		"desc": "禁用稀疏数组"
	},
	"no-template-curly-in-string": {
		"rule": "warn",
		"desc": "常规字符串中禁止出现模板字符串占位符",
		"override": true
	},
	"no-unexpected-multiline": {
		"rule": "error",
		"desc": "禁止使用容易出错的多行表达式"
	},
	"no-unreachable": {
		"rule": "error",
		"desc": "禁止在return、throw、continue或break后出现冗余代码"
	},
	"no-unsafe-finally": {
		"rule": "error",
		"desc": "禁止在finally中出现控制流语句"
	},
	"no-unsafe-negation": {
		"rule": "warn",
		"desc": "禁止在in或instanceof等关系操作符左项前直接使用取反操作符",
		"override": true
	},
	"use-isnan": {
		"rule": "error",
		"desc": "要求调用isNaN检查NaN"
	},
	"valid-jsdoc": {
		"rule": ["warn", {
			"prefer": {
				"arg": "param",
				"argument": "param",
				"class": "constructor",
				"return": "returns",
				"virtual": "abstract"
			},
			"preferType": {
				"Boolean": "boolean",
				"Number": "number",
				"object": "Object",
				"String": "string"
			},
			"requireReturn": false,
			"requireReturnType": false,
			"matchDescription": ".+",
			"requireParamDescription": false,
			"requireReturnDescription": false
		}],
		"desc": "强制使用有效的JSDoc注释",
		"override": true
	},
	"valid-typeof": {
		"rule": ["warn", {
			"requireStringLiterals": false
		}],
		"desc": "强制typeof表达式与有效的字符串进行比较",
		"override": true
	},
	/* ===== Best Practices ===== */
	"accessor-pairs": {
		"rule": ["off", {
			"setWithoutGet": false,
			"getWithoutSet": false
		}],
		"desc": "强制getter/setter在对象中成对出现",
		"override": true
	},
	"array-callback-return": {
		"rule": "error",
		"desc": "强制数组方法的回调函数中必须有return"
	},
	"block-scoped-var": {
		"rule": "warn",
		"desc": "把var看作是在块级作用域范围之内",
		"override": true
	},
	"class-methods-use-this": {
		"rule": ["warn", {
			"exceptMethods": []
		}],
		"desc": "强制class方法含有this",
		"override": true
	},
	"complexity": {
		"rule": ["warn", 5],
		"desc": "限制圈复杂度",
		"override": true
	},
	"consistent-return": {
		"rule": ["off", {
			"treatUndefinedAsUnspecified": false
		}],
		"desc": "要求使用一致的return语句",
		"override": true
	},
	"curly": {
		"rule": ["error", "multi-line", "consistent"],
		"desc": "要求遵循大括号约定",
		"override": true
	},
	"default-case": {
		"rule": ["error", {
			"commentPattern": "^[Nn]o default$"
		}],
		"desc": "要求switch中必须有default",
		"override": true
	},
	"dot-location": {
		"rule": ["error", "property"],
		"desc": "强制在点号之前或之后换行",
		"override": true
	},
	"dot-notation": {
		"rule": ["error", {
			"allowKeywords": true,
			"allowPattern": "^[a-z]+(_[a-z]+)+$"
		}],
		"desc": "要求尽可能使用点号",
		"override": true
	},
	"eqeqeq": {
		"rule": ["off", "always", {
			"null": "ignore"
		}],
		"desc": "要求===和!==的使用规则",
		"override": true
	},
	"guard-for-in": {
		"rule": "warn",
		"desc": "要求for-in中有if筛选",
		"override": true
	},
	"no-alert": {
		"rule": "error",
		"desc": "禁用alert、confirm和prompt"
	},
	"no-caller": {
		"rule": "error",
		"desc": "禁用caller和callee"
	},
	"no-case-declarations": {
		"rule": "warn",
		"desc": "禁止在case或default中出现词法声明",
		"override": true
	},
	"no-div-regex": {
		"rule": "warn",
		"desc": "避免正则表达式字面量开头与除法混淆",
		"override": true
	},
	"no-else-return": {
		"rule": "off",
		"desc": "禁止在else前有return",
		"override": true
	},
	"no-empty-function": {
		"rule": ["error", {
			"allow": []
		}],
		"desc": "禁止出现空函数"
	},
	"no-empty-pattern": {
		"rule": "error",
		"desc": "禁止使用空解构模式"
	},
	"no-eq-null": {
		"rule": "off",
		"desc": "禁止与null进行==或!=操作",
		"override": true
	},
	"no-eval": {
		"rule": ["warn", {
			"allowIndirect": true
		}],
		"desc": "禁用eval",
		"override": true
	},
	"no-extend-native": {
		"rule": ["warn", {
			"exceptions": []
		}],
		"desc": "禁止扩展原生对象",
		"override": true
	},
	"no-extra-bind": {
		"rule": "error",
		"desc": "禁止不必要的函数绑定"
	},
	"no-extra-label": {
		"rule": "error",
		"desc": "禁用不必要的标签"
	},
	"no-fallthrough": {
		"rule": ["warn", {
			"commentPattern": "^[Nn]o break$"
		}],
		"desc": "禁止case语句落空",
		"override": true
	},
	"no-floating-decimal": {
		"rule": "error",
		"desc": "浮点小数点前后必须有数字"
	},
	"no-global-assign": {
		"rule": ["error", {
			"exceptions": []
		}],
		"desc": "禁止对原生对象或只读全局对象重新赋值"
	},
	"no-implicit-coercion": {
		"rule": ["off", {
			"boolean": true,
			"number": true,
			"string": true,
			"allow": []
		}],
		"desc": "禁止使用较短的符号实现类型转换",
		"override": true
	},
	"no-implicit-globals": {
		"rule": "off",
		"desc": "禁止在全局范围使用变量和函数声明",
		"override": true
	},
	"no-implied-eval": {
		"rule": "warn",
		"desc": "禁用隐式的eval",
		"override": true
	},
	"no-invalid-this": {
		"rule": "off",
		"desc": "禁止this关键字在类或类对象之外出现",
		"override": true
	},
	"no-iterator": {
		"rule": "error",
		"desc": "禁用__iterator__"
	},
	"no-labels": {
		"rule": ["off", {
			"allowLoop": false,
			"allowSwitch": false
		}],
		"desc": "禁用标签语句",
		"override": true
	},
	"no-lone-blocks": {
		"rule": "error",
		"desc": "禁用不必要的嵌套块"
	},
	"no-loop-func": {
		"rule": "off",
		"desc": "禁止循环中存在函数",
		"override": true
	},
	"no-magic-numbers": {
		"rule": ["warn", {
			"ignore": [-1, 0, 1, 10],
			"ignoreArrayIndexes": true,
			"enforceConst": false,
			"detectObjects": false
		}],
		"desc": "禁止使用魔术数字",
		"override": true
	},
	"no-multi-spaces": {
		"rule": ["warn", {
			"ignoreEOLComments": false,
			"exceptions": {
				"Property": true
			}
		}],
		"desc": "禁止出现多个空格",
		"override": true
	},
	"no-multi-str": {
		"rule": "error",
		"desc": "禁止多行字符串"
	},
	"no-new": {
		"rule": "off",
		"desc": "禁止new的对象不赋值给变量",
		"override": true
	},
	"no-new-func": {
		"rule": "warn",
		"desc": "禁用Function构造函数",
		"override": true
	},
	"no-new-wrappers": {
		"rule": "warn",
		"desc": "禁止原始类型包装对象实例",
		"override": true
	},
	"no-octal": {
		"rule": "error",
		"desc": "禁用八进制字面量"
	},
	"no-octal-escape": {
		"rule": "error",
		"desc": "禁止在字符串字面量中使用八进制转义序列"
	},
	"no-param-reassign": {
		"rule": ["off", {
			"props": false,
			"ignorePropertyModificationsFor": []
		}],
		"desc": "禁止对函数参数再赋值",
		"override": true
	},
	"no-proto": {
		"rule": "error",
		"desc": "禁用__proto__"
	},
	"no-redeclare": {
		"rule": ["warn", {
			"builtinGlobals": false
		}],
		"desc": "禁止var重新声明",
		"override": true
	},
	"no-restricted-properties": {
		"rule": ["error"],
		"desc": "禁用指定的对象属性"
	},
	"no-return-assign": {
		"rule": ["off", "except-parens"],
		"desc": "禁止在返回语句中赋值",
		"override": true
	},
	"no-return-await": {
		"rule": "error",
		"desc": "禁止不必要的return await"
	},
	"no-script-url": {
		"rule": "error",
		"desc": "禁用javascript:地址"
	},
	"no-self-assign": {
		"rule": ["error", {
			"props": true
		}],
		"desc": "禁止自身赋值",
		"override": true
	},
	"no-self-compare": {
		"rule": "off",
		"desc": "禁止自身比较",
		"override": true
	},
	"no-sequences": {
		"rule": "off",
		"desc": "禁用逗号",
		"override": true
	},
	"no-throw-literal": {
		"rule": "warn",
		"desc": "限制可以被抛出的异常",
		"override": true
	},
	"no-unmodified-loop-condition": {
		"rule": "warn",
		"desc": "禁用一成不变的循环条件",
		"override": true
	},
	"no-unused-expressions": {
		"rule": ["warn", {
			"allowShortCircuit": true,
			"allowTernary": true,
			"allowTaggedTemplates": true
		}],
		"desc": "禁止未使用过的表达式",
		"override": true
	},
	"no-unused-labels": {
		"rule": "error",
		"desc": "禁用未使用过的标签"
	},
	"no-useless-call": {
		"rule": "warn",
		"desc": "禁用不必要的call和apply",
		"override": true
	},
	"no-useless-concat": {
		"rule": "error",
		"desc": "禁止没有必要的字符拼接"
	},
	"no-useless-escape": {
		"rule": "error",
		"desc": "禁用不必要的转义"
	},
	"no-useless-return": {
		"rule": "error",
		"desc": "禁止多余的return"
	},
	"no-void": {
		"rule": "off",
		"desc": "禁用void",
		"override": true
	},
	"no-warning-comments": {
		"rule": ["warn", {
			"terms": ["todo", "fixme", "xxx"],
			"location": "start"
		}],
		"desc": "禁用警告注释",
		"override": true
	},
	"no-with": {
		"rule": "warn",
		"desc": "禁用with",
		"override": true
	},
	"prefer-promise-reject-errors": {
		"rule": ["warn", {
			"allowEmptyReject": false
		}],
		"desc": "要求在reject中使用Error",
		"override": true
	},
	"radix": {
		"rule": ["warn", "always"],
		"desc": "要求必须有基数"
	},
	"require-await": {
		"rule": "error",
		"desc": "要求async中必须有await"
	},
	"vars-on-top": {
		"rule": "off",
		"desc": "要求var放在作用域的顶部",
		"override": true
	},
	"wrap-iife": {
		"rule": ["off", "outside", {
			"functionPrototypeMethods": false
		}],
		"desc": "需要把立即执行的函数包裹起来",
		"override": true
	},
	"yoda": {
		"rule": ["warn", "never", {
			"exceptRange": false,
			"onlyEquality": false
		}],
		"desc": "要求或者禁止Yoda条件",
		"override": true
	},
	/* ===== Strict Mode ===== */
	"strict": {
		"rule": ["error", "safe"],
		"desc": "要求或禁止使用严格模式指令"
	},
	/* ===== Variables ===== */
	"init-declarations": {
		"rule": ["off", "always"],
		"desc": "强制或禁止变量声明语句中初始化",
		"override": true
	},
	"no-catch-shadow": {
		"rule": "warn",
		"desc": "不允许在catch语句中遮盖变量",
		"override": true
	},
	"no-delete-var": {
		"rule": "warn",
		"desc": "禁止删除变量",
		"override": true
	},
	"no-label-var": {
		"rule": "error",
		"desc": "禁用与变量同名的标签"
	},
	"no-restricted-globals": {
		"rule": "error",
		"desc": "禁用特定的全局变量"
	},
	"no-shadow": {
		"rule": ["warn", {
			"builtinGlobals": false,
			"hoist": "all",
			"allow": []
		}],
		"desc": "禁止变量声明覆盖外层作用域的变量",
		"override": true
	},
	"no-shadow-restricted-names": {
		"rule": "error",
		"desc": "关键字不能被遮蔽"
	},
	"no-undef": {
		"rule": ["error", {
			"typeof": false
		}],
		"desc": "禁用未声明的变量"
	},
	"no-undef-init": {
		"rule": "error",
		"desc": "不允许初始化变量值为undefined"
	},
	"no-undefined": {
		"rule": "error",
		"desc": "不允许使用undefined变量"
	},
	"no-unused-vars": {
		"rule": "error",
		"desc": "禁止未使用过的变量"
	},
	"no-use-before-define": {
		"rule": "warn",
		"desc": "禁止定义前使用",
		"override": true
	},
	/* ===== Node.js and CommonJS ===== */
	"callback-return": {
		"rule": ["warn", ["callback", "cb", "next"]],
		"desc": "强制返回callback函数",
		"override": true
	},
	"global-require": {
		"rule": "error",
		"desc": "强制在模块顶部调用require"
	},
	"handle-callback-err": {
		"rule": ["off", "err"],
		"desc": "强制回调错误处理",
		"override": true
	},
	"no-buffer-constructor": {
		"rule": "error",
		"desc": "禁用Buffer的构造函数"
	},
	"no-mixed-requires": {
		"rule": ["warn", {
			"grouping": true,
			"allowCall": false
		}],
		"desc": "禁止require调用与普通变量声明混合使用",
		"override": true
	},
	"no-new-require": {
		"rule": "error",
		"desc": "不允许new require"
	},
	"no-path-concat": {
		"rule": "error",
		"desc": "当使用_dirname和_filename时不允许字符串拼接"
	},
	"no-process-env": {
		"rule": "warn",
		"desc": "禁用process.env",
		"override": true
	},
	"no-process-exit": {
		"rule": "warn",
		"desc": "禁用process.exit",
		"override": true
	},
	"no-restricted-modules": {
		"rule": ["error"],
		"desc": "禁用Node.js模块"
	},
	"no-sync": {
		"rule": "warn",
		"desc": "禁止使用同步方法",
		"override": true
	},
	/* ===== Stylistic Issues ===== */
	"array-bracket-newline": {
		"rule": ["off", {
			"multiline": false,
			"minItems": null
		}],
		"desc": "强制数组字面量括号换行",
		"override": true
	},
	"array-bracket-spacing": {
		"rule": ["warn", "never", {
			"singleValue": false,
			"objectsInArrays": false,
			"arraysInArrays": false
		}],
		"desc": "禁止或强制在数组字面量括号内使用空格",
		"override": true
	},
	"array-element-newline": {
		"rule": ["off", {
			"multiline": false,
			"minItems": null
		}],
		"desc": "强制数组元素间换行",
		"override": true
	},
	"block-spacing": {
		"rule": ["warn", "always"],
		"desc": "禁止或强制在单行代码块中使用空格",
		"override": true
	},
	"brace-style": {
		"rule": ["error", "1tbs", {
			"allowSingleLine": true
		}],
		"desc": "大括号风格要求",
		"override": true
	},
	"camelcase": {
		"rule": ["warn", {
			"properties": "always"
		}],
		"desc": "要求使用骆驼拼写法",
		"override": true
	},
	"capitalized-comments": {
		"rule": "off",
		"desc": "禁止或强制注释首字母大写",
		"override": true
	},
	"comma-dangle": {
		"rule": ["warn", {
			"arrays": "never",
			"objects": "never",
			"imports": "never",
			"exports": "never",
			"functions": "never"
		}],
		"desc": "要求或禁止使用拖尾逗号",
		"override": true
	},
	"comma-spacing": {
		"rule": ["error", {
			"before": false,
			"after": true
		}],
		"desc": "强制在逗号周围使用空格"
	},
	"comma-style": {
		"rule": ["error", "last", {
			"exceptions": {
				"ArrayExpression": false,
				"ArrayPattern": false,
				"ArrowFunctionExpression": false,
				"CallExpression": false,
				"FunctionDeclaration": false,
				"FunctionExpression": false,
				"ImportDeclaration": false,
				"ObjectExpression": false,
				"ObjectPattern": false,
				"VariableDeclaration": false
			}
		}],
		"desc": "逗号位置风格",
		"override": true
	},
	"computed-property-spacing": {
		"rule": ["warn", "never"],
		"desc": "禁止或强制在计算属性中使用空格",
		"override": true
	},
	"consistent-this": {
		"rule": ["warn", "self"],
		"desc": "要求一致的this",
		"override": true
	},
	"eol-last": {
		"rule": ["warn", "always"],
		"desc": "要求或禁止文件末尾保留一行空行",
		"override": true
	},
	"func-call-spacing": {
		"rule": ["error", "never"],
		"desc": "要求或禁止函数名和调用括号之间空格"
	},
	"func-name-matching": {
		"rule": ["off", "always"],
		"desc": "强制函数表达式名和赋予的变量名相同",
		"override": true
	},
	"func-names": {
		"rule": "off",
		"desc": "要求或禁止命名的function表达式",
		"override": true
	},
	"func-style": {
		"rule": ["warn", "expression", {
			"allowArrowFunctions": true
		}],
		"desc": "强制function声明或表达式的一致性",
		"override": true
	},
	"id-blacklist": {
		"rule": ["error"],
		"desc": "禁止在声明和赋值中使用指定的标识符"
	},
	"id-length": {
		"rule": ["off", {
			"min": 2,
			"max": "Infinity",
			"properties": "always",
			"exceptions": []
		}],
		"desc": "强制标识符的最大和最小长度",
		"override": true
	},
	"id-match": {
		"rule": ["off", {
			"properties": true,
			"onlyDeclarations": true
		}],
		"desc": "要求标识符匹配特定的正则表达式",
		"override": true
	},
	"indent": {
		"rule": ["warn", "tab", {
			"SwitchCase": 1,
			"VariableDeclarator": 1,
			"outerIIFEBody": 1,
			"MemberExpression": 1,
			"FunctionExpression": {
				"body": 1,
				"parameters": 1
			},
			"CallExpression": {
				"arguments": 1
			},
			"ArrayExpression": 1,
			"ObjectExpression": 1
		}],
		"desc": "强制使用一致的缩进",
		"override": true
	},
	"jsx-quotes": {
		"rule": ["error", "prefer-double"],
		"desc": "强制在JSX属性中使用一致的单引号或双引号"
	},
	"key-spacing": {
		"rule": ["error", {
			"beforeColon": false,
			"afterColon": true,
			"mode": "minimum"
		}],
		"desc": "强制在对象字面量的键和值之间使用一致的空格",
		"override": true
	},
	"keyword-spacing": {
		"rule": ["error", {
			"before": true,
			"after": true,
			"overrides": {}
		}],
		"desc": "强制关键字周围空格的一致性"
	},
	"line-comment-position": {
		"rule": ["off", {
			"position": "above",
			"applyDefaultIgnorePatterns": false
		}],
		"desc": "强制单行注释位置",
		"override": true
	},
	"linebreak-style": {
		"rule": ["off", "unix"],
		"desc": "强制使用一致的换行符风格",
		"override": true
	},
	"lines-around-comment": {
		"rule": ["off", {
			"beforeBlockComment": true,
			"afterBlockComment": false,
			"beforeLineComment": false,
			"afterLineComment": false,
			"allowBlockStart": true,
			"allowBlockEnd": false,
			"allowObjectStart": true,
			"allowObjectEnd": false,
			"allowArrayStart": true,
			"allowArrayEnd": false,
			"applyDefaultIgnorePatterns": true
		}],
		"desc": "强制注释周围有空行",
		"override": true
	},
	"max-depth": {
		"rule": ["warn", {
			"max": 4
		}],
		"desc": "强制块语句的最大可嵌套深度",
		"override": true
	},
	"max-len": {
		"rule": ["warn", {
			"code": 150,
			"tabWidth": 4,
			"comments": 100,
			"ignoreComments": true,
			"ignoreUrls": true,
			"ignoreStrings": true,
			"ignoreTemplateLiterals": true,
			"ignoreRegExpLiterals": true
		}],
		"desc": "强制行的最大长度",
		"override": true
	},
	"max-lines": {
		"rule": ["warn", {
			"max": 1000,
			"skipBlankLines": true,
			"skipComments": true
		}],
		"desc": "强制文件的最大行数",
		"override": true
	},
	"max-nested-callbacks": {
		"rule": ["warn", {
			"max": 4
		}],
		"desc": "强制回调函数最大嵌套深度",
		"override": true
	},
	"max-params": {
		"rule": ["warn", {
			"max": 6
		}],
		"desc": "限制函数定义中最大参数个数",
		"override": true
	},
	"max-statements": {
		"rule": ["warn", {
			"max": 20
		}, {
			"ignoreTopLevelFunctions": true
		}],
		"desc": "限制函数块中的语句的最大数量",
		"override": true
	},
	"max-statements-per-line": {
		"rule": ["warn", {
			"max": 1
		}],
		"desc": "强制每一行中所允许的最大语句数量",
		"override": true
	},
	"multiline-ternary": {
		"rule": ["off", "always"],
		"desc": "要求或禁止三元中换行",
		"override": true
	},
	"new-cap": {
		"rule": ["error", {
			"newIsCap": true,
			"capIsNew": false,
			"newIsCapExceptions": [],
			"capIsNewExceptions": [],
			"properties": true
		}],
		"desc": "要求构造函数首字母大写",
		"override": true
	},
	"new-parens": {
		"rule": "error",
		"desc": "要求调用无参构造函数时带括号"
	},
	"newline-per-chained-call": {
		"rule": ["warn", {
			"ignoreChainWithDepth": 10
		}],
		"desc": "要求方法链中每个调用都有一个换行符",
		"override": true
	},
	"no-array-constructor": {
		"rule": "off",
		"desc": "禁止使用Array构造函数",
		"override": true
	},
	"no-bitwise": {
		"rule": ["off", {
			"allow": [],
			"int32Hint": false
		}],
		"desc": "禁止使用按位操作符",
		"override": true
	},
	"no-continue": {
		"rule": "warn",
		"desc": "禁用continue",
		"override": true
	},
	"no-inline-comments": {
		"rule": "off",
		"desc": "禁止使用内联注释",
		"override": true
	},
	"no-lonely-if": {
		"rule": "error",
		"desc": "禁止if语句作为唯一语句出现在else语句块中"
	},
	"no-mixed-operators": {
		"rule": ["off", {
			"groups": [
				["+", "-", "*", "/", "%", "**"],
				["&", "|", "^", "~", "<<", ">>", ">>>"],
				["==", "!=", "===", "!==", ">", ">=", "<", "<="],
				["&&", "||"],
				["in", "instanceof"]
			],
			"allowSamePrecedence": true
		}],
		"desc": "禁止混合使用不同的操作符",
		"override": true
	},
	"no-mixed-spaces-and-tabs": {
		"rule": ["error", "smart-tabs"],
		"desc": "禁止使用空格和tab混合缩进"
	},
	"no-multi-assign": {
		"rule": "off",
		"desc": "禁止使用连续等于赋值",
		"override": true
	},
	"no-multiple-empty-lines": {
		"rule": ["error", {
			"max": 2,
			"maxEOF": 1,
			"maxBOF": 0
		}],
		"desc": "不允许多个空行"
	},
	"no-negated-condition": {
		"rule": "off",
		"desc": "禁用否定表达式",
		"override": true
	},
	"no-nested-ternary": {
		"rule": "off",
		"desc": "禁止使用嵌套的三元表达式",
		"override": true
	},
	"no-new-object": {
		"rule": "off",
		"desc": "禁止使用Object构造函数",
		"override": true
	},
	"no-plusplus": {
		"rule": ["off", {
			"allowForLoopAfterthoughts": true
		}],
		"desc": "禁止使用++和--",
		"override": true
	},
	"no-restricted-syntax": {
		"rule": ["error"],
		"desc": "禁止使用特定的语法"
	},
	"no-tabs": {
		"rule": "off",
		"desc": "禁用tab",
		"override": true
	},
	"no-ternary": {
		"rule": "off",
		"desc": "禁止使用三元操作符",
		"override": true
	},
	"no-trailing-spaces": {
		"rule": ["error", {
			"skipBlankLines": false,
			"ignoreComments": false
		}],
		"desc": "禁用行尾空白"
	},
	"no-underscore-dangle": {
		"rule": ["off", {
			"allow": [],
			"allowAfterThis": false,
			"allowAfterSuper": false
		}],
		"desc": "禁止标识符中有悬空下划线",
		"override": true
	},
	"no-unneeded-ternary": {
		"rule": ["error", {
			"defaultAssignment": true
		}],
		"desc": "禁止可以表达为更简单结构的三元操作符"
	},
	"no-whitespace-before-property": {
		"rule": "error",
		"desc": "禁止属性前有空白"
	},
	"nonblock-statement-body-position": {
		"rule": ["warn", "any", {
			"overrides": {}
		}],
		"desc": "强制if、else、while、do-while和for的单行语句位置",
		"override": true
	},
	"object-curly-newline": {
		"rule": ["warn", {
			"ObjectExpression": {
				"multiline": true,
				"consistent": true
			},
			"ObjectPattern": {
				"multiline": true,
				"consistent": true
			}
		}],
		"desc": "强制在花括号内使用一致的换行符",
		"override": true
	},
	"object-curly-spacing": {
		"rule": ["warn", "never", {
			"arraysInObjects": false,
			"objectsInObjects": false
		}],
		"desc": "强制在花括号中使用一致的空格",
		"override": true
	},
	"object-property-newline": {
		"rule": ["error", {
			"allowMultiplePropertiesPerLine": false
		}],
		"desc": "强制将对象的属性放在不同的行上"
	},
	"one-var": {
		"rule": ["off", "always"],
		"desc": "强制函数中的变量在一起声明或分开声明",
		"override": true
	},
	"one-var-declaration-per-line": {
		"rule": ["warn", "initializations"],
		"desc": "要求或禁止在变量声明周围换行",
		"override": true
	},
	"operator-assignment": {
		"rule": ["error", "always"],
		"desc": "要求或禁止尽可能地简化赋值操作"
	},
	"operator-linebreak": {
		"rule": ["warn", "before", {
			"overrides": {}
		}],
		"desc": "强制操作符使用一致的换行符风格",
		"override": true
	},
	"padded-blocks": {
		"rule": ["error", "never"],
		"desc": "要求或禁止块内填充",
		"override": true
	},
	"padding-line-between-statements": {
		"rule": ["off", {
			"blankLine": "never", "prev": "*", "next": "*"
		}],// TODO complete all cases
		"desc": "强制或禁用语句间空行",
		"override": true
	},
	"quote-props": {
		"rule": ["warn", "always", {
			"keywords": true,
			"unnecessary": true,
			"numbers": true
		}],
		"desc": "要求对象字面量属性名称使用引号",
		"override": true
	},
	"quotes": {
		"rule": ["error", "single", {
			"avoidEscape": false,
			"allowTemplateLiterals": true
		}],
		"desc": "强制使用一致的反勾号、双引号或单引号",
		"override": true
	},
	"require-jsdoc": {
		"rule": ["warn", {
			"require": {
				"FunctionDeclaration": true,
				"MethodDefinition": false,
				"ClassDeclaration": false,
				"ArrowFunctionExpression": false
			}
		}],
		"desc": "要求使用JSDoc注释",
		"override": true
	},
	"semi": {
		"rule": ["error", "always", {
			"omitLastInOneLineBlock": false
		}],
		"desc": "要求或禁止使用分号代替ASI",
		"override": true
	},
	"semi-spacing": {
		"rule": ["error", {
			"before": false,
			"after": true
		}],
		"desc": "强制分号前后有空格",
		"override": true
	},
	"semi-style": {
		"rule": ["error", "last"],
		"desc": "强制分号的位置"
	},
	"sort-keys": {
		"rule": ["off", "asc", {
			"caseSensitive": true,
			"natural": false
		}],
		"desc": "要求对象字面量键按顺序排列",
		"override": true
	},
	"sort-vars": {
		"rule": ["off", {
			"ignoreCase": true
		}],
		"desc": "变量排序",
		"override": true
	},
	"space-before-blocks": {
		"rule": ["error", "always"],
		"desc": "要求或禁止语句块之前的空格"
	},
	"space-before-function-paren": {
		"rule": ["error", {
			"anonymous": "always",
			"named": "never",
			"asyncArrow": "always"
		}],
		"desc": "要求或禁止函数圆括号之前有一个空格",
		"override": true
	},
	"space-in-parens": {
		"rule": ["error", "never", {
			"exceptions": []
		}],
		"desc": "禁止或强制圆括号内的空格"
	},
	"space-infix-ops": {
		"rule": ["error", {
			"int32Hint": false
		}],
		"desc": "要求中缀操作符周围有空格"
	},
	"space-unary-ops": {
		"rule": ["error", {
			"words": true,
			"nonwords": false,
			"overrides": {}
		}],
		"desc": "要求或禁止在一元操作符之前或之后存在空格",
		"override": true
	},
	"spaced-comment": {
		"rule": ["warn", "always", {
			"exceptions": ["-", "+", "=", "*"],
			"markers": ["/"]
		}],
		"desc": "要求或禁止在注释前有space或tab",
		"override": true
	},
	"switch-colon-spacing": {
		"rule": ["error", {
			"after": true,
			"before": false
		}],
		"desc": "强制在switch分支冒号前后有空格"
	},
	"template-tag-spacing": {
		"rule": ["warn", "never"],
		"desc": "要求或禁止模板字符串和标签间空格",
		"override": true
	},
	"unicode-bom": {
		"rule": ["warn", "never"],
		"desc": "要求或禁止使用Unicode字节顺序标记BOM",
		"override": true
	},
	"wrap-regex": {
		"rule": "warn",
		"desc": "要求正则表达式被包裹起来",
		"override": true
	},
	/* ===== ECMAScript 6 ===== */
	"arrow-body-style": {
		"rule": ["error", "as-needed", {
			"requireReturnForObjectLiteral": false
		}],
		"desc": "要求箭头函数体使用大括号"
	},
	"arrow-parens": {
		"rule": ["error", "as-needed", {
			"requireForBlockBody": false
		}],
		"desc": "要求箭头函数的参数使用圆括号",
		"override": true
	},
	"arrow-spacing": {
		"rule": ["error", {
			"before": true,
			"after": true
		}],
		"desc": "要求箭头函数的=>前后有空格"
	},
	"constructor-super": {
		"rule": "error",
		"desc": "验证构造函数中super的调用"
	},
	"generator-star-spacing": {
		"rule": ["error", {
			"before": false,
			"after": true
		}],
		"desc": "强制generator函数中*号前后有空格",
		"override": true
	},
	"no-class-assign": {
		"rule": "warn",
		"desc": "不允许修改类声明的变量",
		"override": true
	},
	"no-confusing-arrow": {
		"rule": ["off", {
			"allowParens": false
		}],
		"desc": "禁用容易混淆处使用箭头函数",
		"override": true
	},
	"no-const-assign": {
		"rule": "error",
		"desc": "不允许改变用const声明的变量"
	},
	"no-dupe-class-members": {
		"rule": "error",
		"desc": "不允许类成员中有重复的名称"
	},
	"no-duplicate-imports": {
		"rule": ["error", {
			"includeExports": true
		}],
		"desc": "禁止重复import",
		"override": true
	},
	"no-new-symbol": {
		"rule": "error",
		"desc": "禁用Symbol的构造函数"
	},
	"no-restricted-imports": {
		"rule": ["error", {
			"paths": []
		}],
		"desc": "禁用特定import"
	},
	"no-this-before-super": {
		"rule": "error",
		"desc": "在构造函数中禁止在调用super之前使用this或super"
	},
	"no-useless-computed-key": {
		"rule": "warn",
		"desc": "禁止不必要的计算属性",
		"override": true
	},
	"no-useless-constructor": {
		"rule": "error",
		"desc": "禁用不必要的构造函数"
	},
	"no-useless-rename": {
		"rule": ["warn", {
			"ignoreDestructuring": false,
			"ignoreImport": false,
			"ignoreExport": false
		}],
		"desc": "禁止在import、export和解构赋值中重命名为同名变量",
		"override": true
	},
	"no-var": {
		"rule": "off",
		"desc": "要求使用let或const而不是var",
		"override": true
	},
	"object-shorthand": {
		"rule": ["warn", "always", {
			"avoidQuotes": false,
			"ignoreConstructors": false,
			"avoidExplicitReturnArrows": false
		}],
		"desc": "要求对象字面量简写语法",
		"override": true
	},
	"prefer-arrow-callback": {
		"rule": ["warn", {
			"allowNamedFunctions": true,
			"allowUnboundThis": false
		}],
		"desc": "推荐使用箭头函数作为回调",
		"override": true
	},
	"prefer-const": {
		"rule": ["off", {
			"destructuring": "any",
			"ignoreReadBeforeAssign": false
		}],
		"desc": "建议使用const",
		"override": true
	},
	"prefer-destructuring": {
		"rule": ["off", {
			"array": true,
			"object": true
		}, {
			"enforceForRenamedProperties": false
		}],
		"desc": "建议使用解构",
		"override": true
	},
	"prefer-numeric-literals": {
		"rule": "off",
		"desc": "禁用带两个参数的parseInt",
		"override": true
	},
	"prefer-rest-params": {
		"rule": "warn",
		"desc": "建议用rest代替arguments",
		"override": true
	},
	"prefer-spread": {
		"rule": "warn",
		"desc": "建议使用扩展运算符而非apply",
		"override": true
	},
	"prefer-template": {
		"rule": "warn",
		"desc": "建议使用模板而非字符串连接",
		"override": true
	},
	"require-yield": {
		"rule": "error",
		"desc": "禁用函数内没有yield的generator函数"
	},
	"rest-spread-spacing": {
		"rule": ["error", "never"],
		"desc": "强制rest的...与变量之间有空格"
	},
	"sort-imports": {
		"rule": ["off", {
			"ignoreCase": false,
			"ignoreMemberSort": false,
			"memberSyntaxSortOrder": ["none", "all", "multiple", "single"]
		}],
		"desc": "import排序",
		"override": true
	},
	"symbol-description": {
		"rule": "warn",
		"desc": "要求Symbol的标识参数",
		"override": true
	},
	"template-curly-spacing": {
		"rule": ["warn", "never"],
		"desc": "强制模板字符串中空格的使用",
		"override": true
	},
	"yield-star-spacing": {
		"rule": ["error", {
			"before": false,
			"after": true
		}],
		"desc": "强制在yield*中*周围使用空格",
		"override": true
	}
};
